// Parameters.h: interface for the Parameters class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_PARAMETERS_H__26AD133A_F498_41C5_A5C3_F0F66C96B029__INCLUDED_)
#define AFX_PARAMETERS_H__26AD133A_F498_41C5_A5C3_F0F66C96B029__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include <windows.h>
#include <time.h>
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>
#include "defsSolver.h"
#include "Pancake.h"


/************************************************************************
 *
 *  m_iFirstProblem - which problem should we start solving
 *  m_nProblemsToSolve - how many problems should we solve
 *
 *  m_bUseIDAstar - if true search IDAstar
 *  m_bUseAstar   - if true use Astar
 *
 *  m_bSkipToDual - if true skip to dual
 *
 ************************************************************************
 * we have 3 posible heuristics: 
 *   0 - regular, 1 - dual, 2 - max(regular,dual)
 *
 * m_heuristicLowerBound  - which is the lower heurisic (for the loop)
 * m_heuristicHigherBound - which is the higher heurisic (for the loop)
 *
 * m_UseCutOffLowerBound  - use cut off lower   (for the loop)
 * m_UseCutOffHigherBound - use cut off higher  (for the loop)
 *
 * m_NumOfReflectionLowerBound   - 
 * m_NumOfReflectionHigherBound  - 
 ************************************************************************/


class Parameters  
{
private:
	void PrintInitParameters();
	char pdbFileName[100];
	GameObject m_gameObj;
public:
	int m_iFirstProblem;
	int m_nProblemsToSolve;
	

	int m_heuristicLowerBound;
	int m_heuristicHigherBound;

	int m_UseCutOffLowerBound;
	int m_UseCutOffHigherBound;


	FILE* states_ptr;
	FILE* pdb_ptr;

	Parameters();
	FILE* PtrPDBFile(){return pdb_ptr;};
	virtual ~Parameters();
	void initialize(int argc, char *argv[]);
	void readNextProblem (int *out_State, bool bReadFromFile) ;
	char *getPDBFileName();

};

#endif // !defined(AFX_PARAMETERS_H__26AD133A_F498_41C5_A5C3_F0F66C96B029__INCLUDED_)
